package com.study.d6_thread_pool;

import java.util.concurrent.*;

public class Test2 {
    public static void main(String[] args) {
        //目标：创建线程池对象，处理Runnable任务
        //1、创建线程池
        ExecutorService pool = new ThreadPoolExecutor(3,5,1, TimeUnit.MINUTES,
                new ArrayBlockingQueue<>(3), Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy());

        //2、处理任务
        Runnable target = new MyRunnable();
        pool.execute(target);//自动创建线程，并处理此任务
        pool.execute(target);//自动创建线程，并处理此任务
        pool.execute(target);//自动创建线程，并处理此任务
        pool.execute(target);//加入任务队列
        pool.execute(target);//加入任务队列
        pool.execute(target);//加入任务队列
        pool.execute(target);//临时
        pool.execute(target);//临时
//        pool.execute(target);//丢弃任务，报错
        //3、线程池没有死亡
        pool.shutdown();//等待任务执行完再关闭
//        pool.shutdownNow();//立即关闭，不管任务是否完成
    }
}
